package com.example.myutils.excel;

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;

public class Export {

    public void test3() throws IOException {
        XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("C:/Users/xyl/Desktop/汽车尾气检测模板.xlsx"));
        XSSFSheet sheet = wb.getSheetAt(0);
        insertPicCost(wb, sheet, "D:/images19.png");

    }
    public static void insertPicCost(XSSFWorkbook workBook, XSSFSheet topPic, String pic) {
        BufferedImage bufferImg = null;//图片
        try {
            // 先把读进来的图片放到一个ByteArrayOutputStream中，以便产生ByteArray
            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            //将图片读到BufferedImage
            bufferImg = ImageIO.read(new File(pic));
            // 将图片写入流中
            ImageIO.write(bufferImg, "png", byteArrayOut);
            // 利用HSSFPatriarch将图片写入EXCEL
            Drawing patriarch = topPic.createDrawingPatriarch();
            //图片一导出到单元格B2中
            //46 0 56 7
            //前两个是起始位置 , 后两个是图片图片的宽 高
//            XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0,
//                    (short) 0, 46, (short) 8, 57);
            XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0,
                    (short)10, 46, (short) 18, 57);
            // 插入图片
            patriarch.createPicture(anchor, workBook.addPicture(byteArrayOut
                    .toByteArray(), XSSFWorkbook.PICTURE_TYPE_PNG));
            FileOutputStream out = new FileOutputStream("D:/export2.xlsx");
            workBook.write(out);
            out.close();
        } catch (IOException io) {
            io.printStackTrace();
            System.out.println("插入失败 : " + io.getMessage());
        } finally {

        }
    }

    public void readExcel() throws IOException {
        XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("C:/Users/xyl/Desktop/汽车尾气检测模板.xlsx"));
        //读取了模板内所有sheet内容
        XSSFSheet sheet = wb.getSheetAt(0);
        for (int j = 0; j < sheet.getPhysicalNumberOfRows(); j++) {//获取总行数
            Row row = sheet.getRow(j); // 取出第i行 getRow(index) 获取第(j)行
            if (row == null) {
                continue;
            }
            for (int k = 0; k < row.getPhysicalNumberOfCells(); k++) { // getPhysicalNumberOfCells() 获取当前行的总列数
                String value1 = getCellFormatValue(row.getCell(k));//取出第j行第k列的值
                System.out.print("第" + j + "行,第" + k + "列" + ": " + value1 + ";");
            }
            System.out.println();
        }
    }

    public static String getCellFormatValue(Cell cell) {
        String cellValue = "";
        if (cell != null) {
            // 判断cell类型
            switch (cell.getCellType()) {
                case Cell.CELL_TYPE_NUMERIC: {
                    cellValue = String.valueOf(cell.getNumericCellValue());
                    break;
                }
                case Cell.CELL_TYPE_STRING: {
                    cellValue = cell.getRichStringCellValue().getString();
                    break;
                }
                default:
                    cellValue = "";
            }
        }
        return cellValue;
    }


    public static void main(String[] args) {
        Export export = new Export();
        try {
            export.test3();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private void exportExcel2() throws IOException {
        XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("C:/Users/xyl/Desktop/汽车尾气检测模板.xlsx"));
        XSSFSheet sheet = wb.getSheetAt(0);
        XSSFCell c41_3 = sheet.getRow(41).getCell(3);
        c41_3.setCellValue("123");
        XSSFCell c42_3 = sheet.getRow(42).getCell(3);
        c42_3.setCellValue("123");
        XSSFCell c43_3 = sheet.getRow(43).getCell(3);
        c43_3.setCellValue("123");
        FileOutputStream out = new FileOutputStream("D:/export.xlsx");
        wb.write(out);
        out.close();
    }

    public void exportExcel() throws IOException {
        XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("C:/Users/xyl/Desktop/test.xlsx"));
        XSSFSheet sheet = wb.getSheetAt(0);
        XSSFCell c3_3 = sheet.getRow(3).getCell(3);
        XSSFCell c3_11 = sheet.getRow(3).getCell(11);
        c3_3.setCellValue("报告编号");
        c3_11.setCellValue("检测日期");
        XSSFCell c4_3 = sheet.getRow(4).getCell(3);
        XSSFCell c4_11 = sheet.getRow(4).getCell(11);
        c4_3.setCellValue("");
        c4_11.setCellValue("");
        XSSFCell c5_3 = sheet.getRow(5).getCell(3);
        XSSFCell c5_11 = sheet.getRow(5).getCell(11);
        c5_3.setCellValue("");
        c5_11.setCellValue("");
        XSSFCell c6_3 = sheet.getRow(6).getCell(3);
        XSSFCell c6_11 = sheet.getRow(6).getCell(11);
        c6_3.setCellValue("");
        c6_11.setCellValue("");
        XSSFCell c7_3 = sheet.getRow(7).getCell(3);
        XSSFCell c7_11 = sheet.getRow(7).getCell(11);
        c7_3.setCellValue("");
        c7_11.setCellValue("");
        XSSFCell c8_3 = sheet.getRow(8).getCell(3);
        c8_3.setCellValue("");
        XSSFCell c10_3 = sheet.getRow(10).getCell(3);
        c10_3.setCellValue("");
        XSSFCell c11_3 = sheet.getRow(11).getCell(3);
        c11_3.setCellValue("");
        XSSFCell c12_3 = sheet.getRow(12).getCell(3);
        XSSFCell c12_11 = sheet.getRow(12).getCell(11);
        c12_3.setCellValue("");
        c12_11.setCellValue("");
        XSSFCell c13_3 = sheet.getRow(13).getCell(3);
        XSSFCell c13_11 = sheet.getRow(13).getCell(11);
        c13_3.setCellValue("");
        c13_11.setCellValue("");
        XSSFCell c14_3 = sheet.getRow(14).getCell(3);
        XSSFCell c14_11 = sheet.getRow(14).getCell(11);
        c14_3.setCellValue("");
        c14_11.setCellValue("");
        XSSFCell c15_3 = sheet.getRow(15).getCell(3);
        XSSFCell c15_11 = sheet.getRow(15).getCell(11);
        c15_3.setCellValue("");
        c15_11.setCellValue("");
        XSSFCell c16_3 = sheet.getRow(16).getCell(3);
        XSSFCell c16_11 = sheet.getRow(16).getCell(11);
        c13_3.setCellValue("");
        c16_11.setCellValue("");
        XSSFCell c17_3 = sheet.getRow(17).getCell(3);
        XSSFCell c17_11 = sheet.getRow(17).getCell(11);
        c17_3.setCellValue("");
        c17_11.setCellValue("");
        XSSFCell c18_3 = sheet.getRow(18).getCell(3);
        XSSFCell c18_11 = sheet.getRow(18).getCell(11);
        c18_3.setCellValue("");
        c18_11.setCellValue("");
        XSSFCell c19_3 = sheet.getRow(19).getCell(3);
        XSSFCell c19_11 = sheet.getRow(19).getCell(11);
        c19_3.setCellValue("");
        c19_11.setCellValue("");
        XSSFCell c20_3 = sheet.getRow(20).getCell(3);
        XSSFCell c20_11 = sheet.getRow(20).getCell(11);
        c20_3.setCellValue("");
        c20_11.setCellValue("");
        XSSFCell c21_3 = sheet.getRow(21).getCell(3);
        XSSFCell c21_11 = sheet.getRow(21).getCell(11);
        c21_3.setCellValue("");
        c21_11.setCellValue("");
        XSSFCell c22_3 = sheet.getRow(22).getCell(3);
        XSSFCell c22_11 = sheet.getRow(22).getCell(11);
        c22_3.setCellValue("");
        c22_11.setCellValue("");
        XSSFCell c23_3 = sheet.getRow(23).getCell(3);
        XSSFCell c23_11 = sheet.getRow(23).getCell(11);
        c23_3.setCellValue("");
        c23_11.setCellValue("");
        XSSFCell c24_3 = sheet.getRow(24).getCell(3);
        XSSFCell c24_11 = sheet.getRow(24).getCell(11);
        c24_3.setCellValue("");
        c24_11.setCellValue("");
        XSSFCell c25_3 = sheet.getRow(25).getCell(3);
        XSSFCell c25_11 = sheet.getRow(25).getCell(11);
        c25_3.setCellValue("");
        c25_11.setCellValue("");
        XSSFCell c26_3 = sheet.getRow(26).getCell(3);
        XSSFCell c26_11 = sheet.getRow(26).getCell(11);
        c26_3.setCellValue("");
        c26_11.setCellValue("");
        XSSFCell c27_3 = sheet.getRow(27).getCell(3);
        XSSFCell c27_11 = sheet.getRow(27).getCell(11);
        c27_3.setCellValue("");
        c27_11.setCellValue("");
        XSSFCell c29_3 = sheet.getRow(29).getCell(3);
        XSSFCell c29_12 = sheet.getRow(29).getCell(12);
        c29_3.setCellValue("");
        c29_12.setCellValue("");
        XSSFCell c30_3 = sheet.getRow(30).getCell(3);
        XSSFCell c30_12 = sheet.getRow(30).getCell(12);
        c30_3.setCellValue("");
        c30_12.setCellValue("");
        XSSFCell c33_3 = sheet.getRow(33).getCell(3);
        XSSFCell c33_6 = sheet.getRow(33).getCell(6);
        XSSFCell c33_10 = sheet.getRow(33).getCell(10);
        c33_3.setCellValue("");
        c33_6.setCellValue("");
        c33_10.setCellValue("");
        XSSFCell c37_3 = sheet.getRow(37).getCell(3);
        XSSFCell c37_8 = sheet.getRow(37).getCell(8);
        XSSFCell c37_12 = sheet.getRow(37).getCell(12);
        c37_3.setCellValue("");
        c37_8.setCellValue("");
        c37_12.setCellValue("");
        XSSFCell c39_3 = sheet.getRow(39).getCell(3);
        XSSFCell c39_5 = sheet.getRow(39).getCell(5);
        XSSFCell c39_8 = sheet.getRow(39).getCell(8);
        XSSFCell c39_10 = sheet.getRow(39).getCell(10);
        c39_3.setCellValue("");
        c39_5.setCellValue("");
        c39_8.setCellValue("");
        c39_10.setCellValue("");
        XSSFCell c41_3 = sheet.getRow(41).getCell(3);
        c41_3.setCellValue("");
        XSSFCell c42_3 = sheet.getRow(42).getCell(3);
        c42_3.setCellValue("");
        XSSFCell c43_3 = sheet.getRow(43).getCell(3);
        c43_3.setCellValue("");
        //修改模板内容导出新模板
        insertPicCost(wb, sheet, "D:/images19.png");
        FileOutputStream out = new FileOutputStream("D:/export.xlsx");
        wb.write(out);
        out.close();
    }
}
//         第3行,第3列: a    第3行,第11列: b;
//        第4行,第3列: c;    第4行,第11列: d;
//        第5行,第3列: e;   第5行,第11列: f;
//        第7行,第3列: g;  第7行,第11列: h;
//        ;第8行,第3列: i;
//        第10行,第3列: j;
//        第11行,第3列: k;
//        第12行,第3列: l;    第12行,第11列: m;
//        第13行,第3列: n;   第13行,第11列: o;
//        第14行,第3列: p;  第14行,第11列: q;
//        第15行,第3列: r;   第15行,第11列: s;
//        第16行,第3列: t;   第16行,第11列: u;
//        第17行,第3列: v;   第17行,第11列: 自由加速法;
//        第18行,第3列: a;    第18行,第11列: b;
//        第19行,第3列: Ⅰ; 第19行,第11列: c
//        第20行,第3列: d;  第20行,第11列: e;
//        第21行,第3列: f;  第21行,第11列: g;
//        第22行,第3列: h;   第22行,第11列: i;
//        第23行,第3列: .;    第23行,第11列: 在用;
//        第24行,第3列: .;   第24行,第11列: 无;
//        第25行,第3列: 是;   第25行,第11列: 无
//        第26行,第3列: 无;   第26行,第11列: 无;
//        第27行,第3列: 无;   第27行,第11列: 无
//        第29行,第3列: a;     第29行,第12列: b;
//        第30行,第3列: c;      第30行,第12列: d;
//        第33行,第3列: e;  第33行,第6列: f;   第33行,第10列: g;
//        第37行,第3列: h;    第37行,第8列: i;  第37行,第12列: g;
//        第39行,第3列: k;   第39行,第5列: l;   第39行,第8列: m;  第39行,第10列: n; 第39行,第13列: asd ;
//        第41行,第3列: a;
//        第42行 第3列 b
//        第43行 第3列 c
//        第46行,第0列: 123.0;     第46行,第9列: 123.0;
//        第58行,第0列: 123.0;     第58行,第9列: 123.0;
//        第71行,第0列: 123.0;    第71行,第9列: 123.0;
//        第81行,第0列: 123.0;     第81行,第9列: 123.0;
//        第91行,第0列: 123.0;   第91行,第9列: 123.0;
